#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
//轮询方式读取标准输入
void SetNoBlock(int fd)
{
    int fl=fcntl(fd,F_GETFL);//F_GETFL 获得/设置!!!!文件状态标记
    if(fl<0)
    {
        perror("fcntl_error");
        return;
    }
    fcntl(fd,F_SETFL,fl|O_NONBLOCK);//F_GETFL 获得/设置!!!!文件状态标记 
}
//使用F_GETFL将当前的文件描述符的属性取出来(这是一个位图)
//然后再使用F_SETFL将文件描述符设置回去. 设置回去的同时, 加上一个O_NONBLOCK参数
int main()
{
    SetNoBlock(0);
    while(1)
    {
        char buf[1024]={0};
        ssize_t read_size=read(0,buf,sizeof(buf)-1);
        if(read_size<0)
        {
            sleep(3);
            perror("no_read");
            continue;
        }
        printf("input:%s\n",buf);
    }
    return 0;
}